package vip.xiaonuo.bi.modular.dataset.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;
import vip.xiaonuo.bi.modular.dataset.dto.PreviewDto;
import vip.xiaonuo.bi.modular.dataset.entity.DataColumns;
import vip.xiaonuo.bi.modular.dataset.entity.Dataset;
import vip.xiaonuo.bi.modular.dataset.param.DataSetAddParam;
import vip.xiaonuo.bi.modular.dataset.param.DataSetPageParam;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 数据集表Service接口
 *
 * @author 顾育司
 * @date  2023/12/15 12:09
 **/
public interface DatasetService extends IService<Dataset> {
    /**
     * 获取数据集列表
     * @param dataSetPageParam
     * @return
     */
    public  Page<Dataset> page(DataSetPageParam dataSetPageParam);


    /**
     * 添加csv数据集
     * @param
     * @return
     */
    public PreviewDto upload(MultipartFile file,String type, String charset,String colInfoJson);


    /**
     * 添加数据集
     * @param dataSetAddParam
     */
    void addDataset(DataSetAddParam dataSetAddParam,MultipartFile file);

    /**
     * 获取数据集预览
     * @param id
     * @param limit
     * @return
     */
    Object getPreView(Long id, Integer limit);
    /**
     * 获取数据集列的信息
     * @param id
     * @return
     */
    List<DataColumns> getColInfo(Long id);

    /**
     * 将数据集导出为excel
     * @param id
     * @return
     */
    void exportFile(HttpServletResponse response, Long id) throws Exception;

    void removeByDataSetId(String id);
}